<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script>
			// 类似于数组,但是成员的值是唯一的,没有重复的			
			let s1 = new Set();
			console.log(s1.size); //0
			let s2 = new Set(['a', 'b', 'c']);
			console.log(s2.size); // 3
			
			// 去重	
			let s3 = new Set(['a', 'b', 'b', 'c', 'c']);
			console.log([...s3]); // ["a", "b", "c"]
			
			// 合并去重
			let ary1 = ['a', 'b', 'b', 'c', 'c'];
			let ary2 = ['d', 'd', 'e', 'f', 'f'];
			let s4 = new Set([...ary1, ...ary2]);
			console.log([...s4]); // ["a", "b", "c", "d", "e", "f"]
			
			// add(value):添加某个值,返回Set结构本身,
			// delete(value):删除一个值,返回布尔值,表示是否删除成功,
			// has(value):返回一个布尔值,表示该值是否是Set成员,
			// clear():清除所有的值,没有返回值
			let s5 = new Set([1, 2]);
			//添加	
			s5.add(3).add(4).add(5);
			console.log(s5.size); // 5
			console.log([...s5]); // [1, 2, 3, 4, 5]
			//删除	
			s5.delete(2);
			console.log([...s5]); // [1, 3, 4, 5]
			//判断是否存在值	
			console.log(s5.has(2)); // false
			console.log(s5.has(3)); // true
			//清除所有	
			s5.clear();
			console.log(s5.size); // 0
			
			// 遍历Set数据结构中的值
			let s6 = new Set(['a', 'b', 'c']);
			s6.forEach(value =>
				console.log(value)
			);
		</script>
	</body>
</html>
